/* eslint-disable class-methods-use-this */
import _axios, { get, put, _delete } from '@/lin/plugin/axios'
import Config from '../config'
// 我们通过 class 这样的语法糖使模型这个概念更加具象化，其优点：耦合性低、可维护性。
class candidate {
  // constructor() {}

  // 类中的方法可以代表一个用户行为
  async createcandidate(data) {
    return _axios({
      method: 'post',
      url: 'v1/candidate',
      data,
    })
  }

  // 在这里通过 async await 语法糖让代码同步执行
  // 1. await 一定要搭配 async 来使用
  // 2. await 后面跟的是一个 Promise 对象
  // async getcandidate(id) {
  //   const res = await get(`v1/candidate/${id}`)
  //   return res
  // }

  async editcandidate(id, info) {
    const res = await put(`v1/candidate/${id}`, info)
    return res
  }

  async deletecandidate(id) {
    const res = await _delete(`v1/candidate/${id}`)
    return res
  }

  async getcandidates(data) {
    return _axios({
      method: 'get',
      url: Config.baseURL2 + '/candidate/query',
      // handleError: true,
      data,
    })
  }
  //候选人新增
  async candidateAdd(data) {
    return _axios({
      method: 'post',
      url: Config.baseURL2 + '/candidate/add',
      data,
    })
  }
  //删除候选人
  async candidateDel(data) {
    return _axios({
      method: 'get',
      url: Config.baseURL2 + '/candidate/remove',
      data,
    })
  }
  //编辑候选人
  async candidateModify(data) {
    return _axios({
      method: 'post',
      url: Config.baseURL2 + '/candidate/modify',
      data,
    })
  }
  //候选人查重
  async checkDuplicat(data) {
    return _axios({
      method: 'get',
      url: Config.baseURL2 + '/candidate/checkDuplicat',
      data,
    })
  }
    //删除候选人
    async candidateRemove(data) {
      return _axios({
        method: 'post',
        url: Config.baseURL2 + '/candidate/remove',
        data,
      })
    }
        //删除候选人
        async candidateReallocate(data) {
          return _axios({
            method: 'post',
            url: Config.baseURL2 + '/candidate/reallocate',
            data,
          })
        }
}

export default new candidate()
